Ext.define('appfe.ux.MyVTypes', {
    override: 'Ext.form.field.VTypes',

    /** 自定义VType类型，验证日期选择范围 */
    daterange: function (val, field) {
        try {
            console.debug('>>>>>>>>>>>>>>>>>>>>>>>>>>>>')
            console.debug('daterange-> val:', val)
            var date = field.parseDate(val);
            console.debug('daterange-> date:', date)
            console.debug('daterange-> this.dateRangeMax:', this.dateRangeMax)
            console.debug('daterange-> this.dateRangeMin:', this.dateRangeMin)

            if (!date) {
                console.debug('daterange-> !date: return false')
                return false;
            }
            //起始日期
            if (field.endDateField && (!this.dateRangeMin || (date.getTime() != this.dateRangeMin.getTime()))) {
                var end = field.up().down('#' + field.endDateField);
                console.debug('daterange-> endDateField:', end)
                end.setMinValue(date);
                end.validate();
                this.dateRangeMin = date;
            }
            //截止日期
            if (field.startDateField && (!this.dateRangeMax || (date.getTime() != this.dateRangeMax.getTime()))) {
                var start = field.up().down('#' + field.startDateField);
                console.debug('daterange-> startDateField:', start)
                start.setMaxValue(date);
                start.validate();
                this.dateRangeMax = date;
            } 
        } catch (e) {
            console.debug('daterange-> exception:', e)
        }
        /*
         * Always return true since we're only using this vtype to set the
         * min/max allowed values (these are tested for after the vtype test)
         */
        console.debug('<<<<<<<<<<<<<<<<<<<<<daterange-> : return true')
        return true;
    },
    //验证提示信息
    daterangeText: '开始日期不能大于结束日期，请重新选择',


    /** 自定义VType类型，校验两次密码输入是否一致 */
    password: function (val, field) {
        if (field.initialPassField) {
            var pwd = field.up('form').down('#' + field.initialPassField);
            return (val == pwd.getValue());
        }
        return true;
    },
    passwordText: '两次输入的密码不匹配'

    /*
    chinese:function(val,field)    
      {    
            var reg = /^[/u4e00-/u9fa5]+$/i;    
            if(!reg.test(val))    
            {    
                return false;    
            }    
            return true;    
      },    
      chineseText:'请输入中文',    
          
      age:function(val,field)    
      {    
            try    
            {    
                if(parseInt(val) >= 18 && parseInt(val) <= 100)    
                    return true;    
                return false;    
            }    
            catch(err)     
            {    
                return false;    
            }    
      },    
      ageText:'年龄输入有误',    
          
      alphanum:function(val,field)    
      {    
            try    
            {    
                if(!/W/.test(val))
                    return true;    
                return false;    
            }    
            catch(e)    
            {    
                return false;    
            }    
      },    
      alphanumText:'请输入英文字母或是数字,其它字符是不允许的.',    
          
      url:function(val,field)    
      {    
            try    
            {    
                if(/^(http|https|ftp)://(([A-Z0-9][A-Z0-9_-]*)(/.[A-Z0-9][A-Z0-9_-]*)+)(:(/d+))?/ ?/i.test(val))
                    return true;    
                return false;    
            }    
            catch(e)    
            {    
                return false;    
            }    
      },    
      urlText:'请输入有效的URL地址.',    
          
      max:function(val,field)    
      {    
            try    
            {    
                if(parseFloat(val) <= parseFloat(field.max))    
                    return true;    
                return false;    
            }    
            catch(e)    
            {    
                return false;    
            }    
      },    
      maxText:'超过最大值',    
          
      min:function(val,field)    
      {    
            try    
            {    
                if(parseFloat(val) >= parseFloat(field.min))    
                    return true;    
                return false;    
            }    
            catch(e)    
            {    
                return false;    
            }    
      },    
      minText:'小于最小值',    
              
      datecn:function(val,field)    
      {    
            try    
            {    
                var regex = /^(/d{4})-(/d{2})-(/d{2})$/;    
                if(!regex.test(val)) return false;    
                var d = new Date(val.replace(regex, '$1/$2/$3'));    
                return (parseInt(RegExp.$2, 10) == (1+d.getMonth())) && (parseInt(RegExp.$3, 10) == d.getDate())&&(parseInt(RegExp.$1, 10) == d.getFullYear());    
            }    
            catch(e)    
            {    
                return false;    
            }    
      },    
      datecnText:'请使用这样的日期格式: yyyy-mm-dd. 例如:2008-06-20.',    
          
      integer:function(val,field)    
      {    
            try    
            {    
                if(/^[-+]?[/d]+$/.test(val))    
                    return true;    
                return false;    
            }    
            catch(e)    
            {    
                return false;    
            }    
      },    
      integerText:'请输入正确的整数',    
          
      minlength:function(val,field)    
      {    
            try    
            {    
                if(val.length >= parseInt(field.minlen))    
                    return true;    
                return false    
            }    
            catch(e)    
            {    
                return false;    
            }    
      },    
      minlengthText:'长度过小',    
          
      maxlength:function(val,field)    
      {    
         try    
         {    
            if(val.length <= parseInt(field.maxlen))    
                return true;    
            return false;    
         }    
         catch(e)    
         {    
            return false;    
         }    
      },    
      maxlengthText:'长度过大',    
          
      ip:function(val,field)    
      {    
            try    
            {    
                if((/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(val)))    
                    return true;    
                return false;    
            }    
            catch(e)    
            {    
                return false;    
            }    
      },    
      ipText:'请输入正确的IP地址',    
          
      phone:function(val,field)    
      {    
            try    
            {    
                if(/^((0[1-9]{3})?(0[12][0-9])?[-])?/d{6,8}$/.test(val))    
                    return true;    
                return false;    
            }    
            catch(e)    
            {    
                return false;    
            }    
      },    
      phoneText:'请输入正确的电话号码,如:0920-29392929',    
          
      mobilephone:function(val,field)    
      {    
            try    
            {    
                if(/(^0?[1][35][0-9]{9}$)/.test(val))    
                    return true;    
                return false;    
            }    
            catch(e)    
            {    
                return false;    
            }    
      },    
      mobilephoneText:'请输入正确的手机号码',    
          
      alpha:function(val,field)    
      {    
            try    
            {    
                if( /^[a-zA-Z]+$/.test(val))    
                    return true;    
                return false;    
            }    
            catch(e)    
            {    
                return false;    
            }    
      },    
      alphaText:'请输入英文字母'    
      */
});    
